B. Connors and L. Lacko
Quantitative Assessment Methods Section, Pacific Region, DFO
2020-09-27
This document briefly describes analyses of COVID-19 associated change in landings in the integrated groundfish fishery in Pacific Canada.
Data for these analyses were queried from GFFOS, a groundfsh-specific view of the Pacific Regional Fishery Operations System (FOS) database. Groundfish fisheries include the directed Rockfish, Spiny Dogfish, Lingcod, Halibut, Sablefish, and Trawl fisheries in Pacific waters (Figure 1). Official catch estimates were derived from the ratio of total weight landed from the dockside monitoring program to the total of all retained catch weights from the logbook program.
All code and associated data to reproduce this document can be found on Github here.
Figure 1. Pacific Canada Fishery Management Areas.
library(tidyverse)
library(dplyr)
library(ggsidekick)
library(rstanarm)
library(lme4)
catch_effort <- read.csv("CatchByMonthGear.csv")
catch_effort$log_land <- log(catch_effort$landed_kg)
catch_effort$month <- as.factor(catch_effort$month)
catch_effort$month_n <- as.numeric(catch_effort$month)
landed_spp <- catch_effort %>%
group_by(SPECIES_COMMON_NAME) %>%
dplyr::summarise(landings = sum(landed_kg))%>%
arrange(desc(landings))%>%
as.data.frame()
landed_spp[1:20,]
## SPECIES_COMMON_NAME landings
## 1 PACIFIC HAKE 635112083
## 2 ARROWTOOTH FLOUNDER 80057280
## 3 WALLEYE POLLOCK 42660268
## 4 YELLOWTAIL ROCKFISH 36644981
## 5 PACIFIC OCEAN PERCH 36439309
## 6 PACIFIC HALIBUT 33903552
## 7 SABLEFISH 20220532
## 8 WIDOW ROCKFISH 18045929
## 9 DOVER SOLE 14638035
## 10 SILVERGRAY ROCKFISH 14112718
## 11 LINGCOD 12793192
## 12 YELLOWMOUTH ROCKFISH 11776823
## 13 PACIFIC COD 9548460
## 14 ROUGHEYE/BLACKSPOTTED ROCKFISH COMPLEX 7890286
## 15 CANARY ROCKFISH 7553248
## 16 REDSTRIPE ROCKFISH 6285564
## 17 PETRALE SOLE 6032077
## 18 ENGLISH SOLE 5396784
## 19 SOUTHERN ROCK SOLE 5034459
## 20 BIG SKATE 3837136
Wow that is a lot of Hake fish fingers.
agg_landed_spp <- catch_effort %>%
group_by(year, month) %>%
summarise(landings = sum(landed_kg), n = n())%>%
as.data.frame()
ggplot(agg_landed_spp, aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()
Landings clearly vary over the course of the year with peak landings typically occurring over the summer. There is no uber obvious decline in landings in the spring/summer of 2020 coincident with COVID (note that landings in July should be interpreted with caution due to potentially incomplete reporting). But landings are dominated by Hake, so let’s look at a few of the most commonly landed species individually.
ind_landed_spp <- catch_effort %>%
group_by(year, month,SPECIES_COMMON_NAME) %>%
summarise(landings = sum(landed_kg))%>%
as.data.frame()
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="PACIFIC HAKE",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Hake")
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="ARROWTOOTH FLOUNDER",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Arrowtooth")
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="WALLEYE POLLOCK",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Pollock")
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="YELLOWTAIL ROCKFISH",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Yellowtail")
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="PACIFIC OCEAN PERCH",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Perch")
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="PACIFIC HALIBUT",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Halibut")
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="SABLEFISH",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Sablefish")
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="DOVER SOLE",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Dover sole")
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="WIDOW ROCKFISH",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Widow rockfish")
ggplot(ind_landed_spp[ind_landed_spp$SPECIES_COMMON_NAME=="SILVERGRAY ROCKFISH",], aes(x= month, y = (landings/100000)))+
geom_bar(stat="identity")+
facet_wrap(~ year) +
theme_sleek()+
ggtitle("Silvergrey rockfish")
No super obvious COVID associated reduction in landings jump out from these figures, but if your squint it looks like landings of Halibut, Sablefish and Lingcod are down a bit since beginning of COVID, maybe?.
Let’s actually test for a COVID “effect”.
We can test for a COVID lockdown effect on landings by fitting a linear mixed effects model of (log) landings as a function of gear type (landings vary by gear type), and whether or not landings occurred during the COVID lockdown. In this case I have subsetted the data to only consider the top ten species in landings, and to only consider the same period of time each year (March to July, inclusive), so in effect we are asking: “Were landings different in 2020 than they were during the same time periods during the previous 10 years?”"
I specified year and species as random effects (random intercepts; i.e., landings vary by year and species) and also allowed the COVID effect to vary by species (random slope). I fit this model in a Bayesian estimation framework using STAN so as to deal with singularity issues (over fitting?) when fit in a Maximum Likelihood framework, plus we can get a full posterior distribution for the random effects. There are admittedly many other ways to think about testing for a COVID effect, this is just a very simple first pass.
Here is a call to fit the model and then summary of model fit.
covid_model <- stan_lmer(log_land ~ 0 + gear + covid + (1|year) + (covid|SPECIES_COMMON_NAME),
data = covid_period)
##
## SAMPLING FOR MODEL 'continuous' NOW (CHAIN 1).
## Chain 1:
## Chain 1: Gradient evaluation took 0 seconds
## Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 0 seconds.
## Chain 1: Adjust your expectations accordingly!
## Chain 1:
## Chain 1:
## Chain 1: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 1: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 1: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 1: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 1: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 1: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 1: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 1: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 1: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 1: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 1: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 1: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 1:
## Chain 1: Elapsed Time: 1.453 seconds (Warm-up)
## Chain 1: 1.126 seconds (Sampling)
## Chain 1: 2.579 seconds (Total)
## Chain 1:
##
## SAMPLING FOR MODEL 'continuous' NOW (CHAIN 2).
## Chain 2:
## Chain 2: Gradient evaluation took 0 seconds
## Chain 2: 1000 transitions using 10 leapfrog steps per transition would take 0 seconds.
## Chain 2: Adjust your expectations accordingly!
## Chain 2:
## Chain 2:
## Chain 2: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 2: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 2: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 2: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 2: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 2: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 2: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 2: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 2: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 2: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 2: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 2: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 2:
## Chain 2: Elapsed Time: 1.673 seconds (Warm-up)
## Chain 2: 1.049 seconds (Sampling)
## Chain 2: 2.722 seconds (Total)
## Chain 2:
##
## SAMPLING FOR MODEL 'continuous' NOW (CHAIN 3).
## Chain 3:
## Chain 3: Gradient evaluation took 0 seconds
## Chain 3: 1000 transitions using 10 leapfrog steps per transition would take 0 seconds.
## Chain 3: Adjust your expectations accordingly!
## Chain 3:
## Chain 3:
## Chain 3: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 3: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 3: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 3: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 3: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 3: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 3: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 3: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 3: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 3: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 3: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 3: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 3:
## Chain 3: Elapsed Time: 1.585 seconds (Warm-up)
## Chain 3: 1.143 seconds (Sampling)
## Chain 3: 2.728 seconds (Total)
## Chain 3:
##
## SAMPLING FOR MODEL 'continuous' NOW (CHAIN 4).
## Chain 4:
## Chain 4: Gradient evaluation took 0 seconds
## Chain 4: 1000 transitions using 10 leapfrog steps per transition would take 0 seconds.
## Chain 4: Adjust your expectations accordingly!
## Chain 4:
## Chain 4:
## Chain 4: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 4: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 4: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 4: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 4: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 4: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 4: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 4: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 4: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 4: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 4: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 4: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 4:
## Chain 4: Elapsed Time: 1.719 seconds (Warm-up)
## Chain 4: 1.141 seconds (Sampling)
## Chain 4: 2.86 seconds (Total)
## Chain 4:
summary(covid_model)
##
## Model Info:
##
## function: stan_lmer
## family: gaussian [identity]
## formula: log_land ~ 0 + gear + covid + (1 | year) + (covid | SPECIES_COMMON_NAME)
## algorithm: sampling
## priors: see help('prior_summary')
## sample: 4000 (posterior sample size)
## observations: 146
## groups: year (10), SPECIES_COMMON_NAME (10)
##
## Estimates:
## mean sd 2.5%
## gearBOTTOM TRAWL 10.4 0.7 9.0
## gearHOOK AND LINE 6.8 0.7 5.3
## gearMIDWATER TRAWL 9.5 0.7 8.0
## gearTRAP 8.3 1.4 5.5
## gearUNSPECIFIED 4.7 0.9 2.8
## covid 0.2 1.2 -2.2
## b[(Intercept) year:2011] 0.1 0.5 -0.8
## b[(Intercept) year:2012] 0.2 0.5 -0.7
## b[(Intercept) year:2013] -0.1 0.5 -1.3
## b[(Intercept) year:2014] 0.0 0.5 -1.0
## b[(Intercept) year:2015] 0.5 0.6 -0.4
## b[(Intercept) year:2016] -0.3 0.5 -1.5
## b[(Intercept) year:2017] -0.2 0.5 -1.4
## b[(Intercept) year:2018] 0.2 0.6 -0.8
## b[(Intercept) year:2019] -0.2 0.5 -1.5
## b[(Intercept) year:2020] 0.0 0.7 -1.5
## b[(Intercept) SPECIES_COMMON_NAME:ARROWTOOTH_FLOUNDER] -0.4 0.7 -1.8
## b[covid SPECIES_COMMON_NAME:ARROWTOOTH_FLOUNDER] -0.4 1.0 -3.0
## b[(Intercept) SPECIES_COMMON_NAME:DOVER_SOLE] -0.7 0.9 -2.7
## b[covid SPECIES_COMMON_NAME:DOVER_SOLE] 0.3 1.1 -1.7
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_HAKE] 1.6 1.1 -0.1
## b[covid SPECIES_COMMON_NAME:PACIFIC_HAKE] 0.1 1.3 -2.9
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_HALIBUT] -0.2 0.7 -1.8
## b[covid SPECIES_COMMON_NAME:PACIFIC_HALIBUT] 0.5 1.2 -1.2
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_OCEAN_PERCH] -0.1 0.7 -1.5
## b[covid SPECIES_COMMON_NAME:PACIFIC_OCEAN_PERCH] 0.0 1.1 -2.3
## b[(Intercept) SPECIES_COMMON_NAME:SABLEFISH] 0.4 0.7 -0.9
## b[covid SPECIES_COMMON_NAME:SABLEFISH] 0.0 1.0 -2.0
## b[(Intercept) SPECIES_COMMON_NAME:SILVERGRAY_ROCKFISH] 0.5 0.7 -0.7
## b[covid SPECIES_COMMON_NAME:SILVERGRAY_ROCKFISH] -0.2 1.0 -2.7
## b[(Intercept) SPECIES_COMMON_NAME:WALLEYE_POLLOCK] -0.5 0.9 -2.5
## b[covid SPECIES_COMMON_NAME:WALLEYE_POLLOCK] -0.1 1.0 -2.4
## b[(Intercept) SPECIES_COMMON_NAME:WIDOW_ROCKFISH] -0.6 0.8 -2.5
## b[covid SPECIES_COMMON_NAME:WIDOW_ROCKFISH] 0.0 1.0 -2.2
## b[(Intercept) SPECIES_COMMON_NAME:YELLOWTAIL_ROCKFISH] 0.3 0.8 -1.0
## b[covid SPECIES_COMMON_NAME:YELLOWTAIL_ROCKFISH] -0.3 1.1 -2.9
## sigma 3.2 0.2 2.9
## Sigma[year:(Intercept),(Intercept)] 0.5 0.7 0.0
## Sigma[SPECIES_COMMON_NAME:(Intercept),(Intercept)] 1.4 1.5 0.0
## Sigma[SPECIES_COMMON_NAME:covid,(Intercept)] -0.1 1.1 -2.6
## Sigma[SPECIES_COMMON_NAME:covid,covid] 1.5 2.6 0.0
## mean_PPD 8.6 0.4 7.9
## log-posterior -442.5 6.2 -455.0
## 25% 50% 75%
## gearBOTTOM TRAWL 10.0 10.4 10.8
## gearHOOK AND LINE 6.3 6.8 7.3
## gearMIDWATER TRAWL 9.0 9.5 9.9
## gearTRAP 7.4 8.4 9.3
## gearUNSPECIFIED 4.0 4.7 5.3
## covid -0.6 0.2 1.0
## b[(Intercept) year:2011] -0.1 0.0 0.3
## b[(Intercept) year:2012] -0.1 0.1 0.4
## b[(Intercept) year:2013] -0.3 0.0 0.1
## b[(Intercept) year:2014] -0.2 0.0 0.2
## b[(Intercept) year:2015] 0.0 0.3 0.8
## b[(Intercept) year:2016] -0.5 -0.2 0.0
## b[(Intercept) year:2017] -0.5 -0.1 0.0
## b[(Intercept) year:2018] -0.1 0.1 0.5
## b[(Intercept) year:2019] -0.4 -0.1 0.1
## b[(Intercept) year:2020] -0.2 0.0 0.3
## b[(Intercept) SPECIES_COMMON_NAME:ARROWTOOTH_FLOUNDER] -0.8 -0.3 0.0
## b[covid SPECIES_COMMON_NAME:ARROWTOOTH_FLOUNDER] -0.8 -0.2 0.2
## b[(Intercept) SPECIES_COMMON_NAME:DOVER_SOLE] -1.3 -0.6 -0.1
## b[covid SPECIES_COMMON_NAME:DOVER_SOLE] -0.2 0.1 0.7
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_HAKE] 0.8 1.6 2.4
## b[covid SPECIES_COMMON_NAME:PACIFIC_HAKE] -0.5 0.0 0.6
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_HALIBUT] -0.6 -0.1 0.2
## b[covid SPECIES_COMMON_NAME:PACIFIC_HALIBUT] -0.1 0.2 0.9
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_OCEAN_PERCH] -0.5 0.0 0.3
## b[covid SPECIES_COMMON_NAME:PACIFIC_OCEAN_PERCH] -0.4 0.0 0.4
## b[(Intercept) SPECIES_COMMON_NAME:SABLEFISH] 0.0 0.3 0.8
## b[covid SPECIES_COMMON_NAME:SABLEFISH] -0.4 0.0 0.5
## b[(Intercept) SPECIES_COMMON_NAME:SILVERGRAY_ROCKFISH] 0.0 0.4 0.9
## b[covid SPECIES_COMMON_NAME:SILVERGRAY_ROCKFISH] -0.6 -0.1 0.3
## b[(Intercept) SPECIES_COMMON_NAME:WALLEYE_POLLOCK] -1.0 -0.4 0.1
## b[covid SPECIES_COMMON_NAME:WALLEYE_POLLOCK] -0.5 -0.1 0.3
## b[(Intercept) SPECIES_COMMON_NAME:WIDOW_ROCKFISH] -1.1 -0.5 0.0
## b[covid SPECIES_COMMON_NAME:WIDOW_ROCKFISH] -0.5 0.0 0.4
## b[(Intercept) SPECIES_COMMON_NAME:YELLOWTAIL_ROCKFISH] -0.1 0.2 0.8
## b[covid SPECIES_COMMON_NAME:YELLOWTAIL_ROCKFISH] -0.6 -0.1 0.2
## sigma 3.1 3.2 3.4
## Sigma[year:(Intercept),(Intercept)] 0.1 0.2 0.6
## Sigma[SPECIES_COMMON_NAME:(Intercept),(Intercept)] 0.4 1.0 1.9
## Sigma[SPECIES_COMMON_NAME:covid,(Intercept)] -0.4 0.0 0.2
## Sigma[SPECIES_COMMON_NAME:covid,covid] 0.2 0.7 1.9
## mean_PPD 8.4 8.6 8.9
## log-posterior -446.5 -442.3 -438.2
## 97.5%
## gearBOTTOM TRAWL 11.7
## gearHOOK AND LINE 8.2
## gearMIDWATER TRAWL 10.8
## gearTRAP 11.1
## gearUNSPECIFIED 6.4
## covid 2.7
## b[(Intercept) year:2011] 1.3
## b[(Intercept) year:2012] 1.3
## b[(Intercept) year:2013] 0.9
## b[(Intercept) year:2014] 1.1
## b[(Intercept) year:2015] 2.1
## b[(Intercept) year:2016] 0.6
## b[(Intercept) year:2017] 0.6
## b[(Intercept) year:2018] 1.7
## b[(Intercept) year:2019] 0.8
## b[(Intercept) year:2020] 1.5
## b[(Intercept) SPECIES_COMMON_NAME:ARROWTOOTH_FLOUNDER] 0.9
## b[covid SPECIES_COMMON_NAME:ARROWTOOTH_FLOUNDER] 1.2
## b[(Intercept) SPECIES_COMMON_NAME:DOVER_SOLE] 0.7
## b[covid SPECIES_COMMON_NAME:DOVER_SOLE] 3.2
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_HAKE] 4.0
## b[covid SPECIES_COMMON_NAME:PACIFIC_HAKE] 3.0
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_HALIBUT] 1.3
## b[covid SPECIES_COMMON_NAME:PACIFIC_HALIBUT] 3.6
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_OCEAN_PERCH] 1.4
## b[covid SPECIES_COMMON_NAME:PACIFIC_OCEAN_PERCH] 2.5
## b[(Intercept) SPECIES_COMMON_NAME:SABLEFISH] 1.9
## b[covid SPECIES_COMMON_NAME:SABLEFISH] 2.1
## b[(Intercept) SPECIES_COMMON_NAME:SILVERGRAY_ROCKFISH] 2.0
## b[covid SPECIES_COMMON_NAME:SILVERGRAY_ROCKFISH] 1.7
## b[(Intercept) SPECIES_COMMON_NAME:WALLEYE_POLLOCK] 1.1
## b[covid SPECIES_COMMON_NAME:WALLEYE_POLLOCK] 1.8
## b[(Intercept) SPECIES_COMMON_NAME:WIDOW_ROCKFISH] 0.9
## b[covid SPECIES_COMMON_NAME:WIDOW_ROCKFISH] 2.1
## b[(Intercept) SPECIES_COMMON_NAME:YELLOWTAIL_ROCKFISH] 2.0
## b[covid SPECIES_COMMON_NAME:YELLOWTAIL_ROCKFISH] 1.5
## sigma 3.7
## Sigma[year:(Intercept),(Intercept)] 2.5
## Sigma[SPECIES_COMMON_NAME:(Intercept),(Intercept)] 5.2
## Sigma[SPECIES_COMMON_NAME:covid,(Intercept)] 1.6
## Sigma[SPECIES_COMMON_NAME:covid,covid] 7.5
## mean_PPD 9.4
## log-posterior -430.9
##
## Diagnostics:
## mcse Rhat n_eff
## gearBOTTOM TRAWL 0.0 1.0 1982
## gearHOOK AND LINE 0.0 1.0 2128
## gearMIDWATER TRAWL 0.0 1.0 1877
## gearTRAP 0.0 1.0 3757
## gearUNSPECIFIED 0.0 1.0 3036
## covid 0.0 1.0 2977
## b[(Intercept) year:2011] 0.0 1.0 4045
## b[(Intercept) year:2012] 0.0 1.0 3144
## b[(Intercept) year:2013] 0.0 1.0 4987
## b[(Intercept) year:2014] 0.0 1.0 4786
## b[(Intercept) year:2015] 0.0 1.0 1950
## b[(Intercept) year:2016] 0.0 1.0 3701
## b[(Intercept) year:2017] 0.0 1.0 4060
## b[(Intercept) year:2018] 0.0 1.0 3221
## b[(Intercept) year:2019] 0.0 1.0 4297
## b[(Intercept) year:2020] 0.0 1.0 2641
## b[(Intercept) SPECIES_COMMON_NAME:ARROWTOOTH_FLOUNDER] 0.0 1.0 2573
## b[covid SPECIES_COMMON_NAME:ARROWTOOTH_FLOUNDER] 0.0 1.0 3455
## b[(Intercept) SPECIES_COMMON_NAME:DOVER_SOLE] 0.0 1.0 2276
## b[covid SPECIES_COMMON_NAME:DOVER_SOLE] 0.0 1.0 3707
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_HAKE] 0.0 1.0 1226
## b[covid SPECIES_COMMON_NAME:PACIFIC_HAKE] 0.0 1.0 4435
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_HALIBUT] 0.0 1.0 2934
## b[covid SPECIES_COMMON_NAME:PACIFIC_HALIBUT] 0.0 1.0 3118
## b[(Intercept) SPECIES_COMMON_NAME:PACIFIC_OCEAN_PERCH] 0.0 1.0 3236
## b[covid SPECIES_COMMON_NAME:PACIFIC_OCEAN_PERCH] 0.0 1.0 4791
## b[(Intercept) SPECIES_COMMON_NAME:SABLEFISH] 0.0 1.0 2568
## b[covid SPECIES_COMMON_NAME:SABLEFISH] 0.0 1.0 4476
## b[(Intercept) SPECIES_COMMON_NAME:SILVERGRAY_ROCKFISH] 0.0 1.0 1863
## b[covid SPECIES_COMMON_NAME:SILVERGRAY_ROCKFISH] 0.0 1.0 3715
## b[(Intercept) SPECIES_COMMON_NAME:WALLEYE_POLLOCK] 0.0 1.0 3521
## b[covid SPECIES_COMMON_NAME:WALLEYE_POLLOCK] 0.0 1.0 3875
## b[(Intercept) SPECIES_COMMON_NAME:WIDOW_ROCKFISH] 0.0 1.0 3029
## b[covid SPECIES_COMMON_NAME:WIDOW_ROCKFISH] 0.0 1.0 4123
## b[(Intercept) SPECIES_COMMON_NAME:YELLOWTAIL_ROCKFISH] 0.0 1.0 2792
## b[covid SPECIES_COMMON_NAME:YELLOWTAIL_ROCKFISH] 0.0 1.0 4020
## sigma 0.0 1.0 2916
## Sigma[year:(Intercept),(Intercept)] 0.0 1.0 1662
## Sigma[SPECIES_COMMON_NAME:(Intercept),(Intercept)] 0.0 1.0 1517
## Sigma[SPECIES_COMMON_NAME:covid,(Intercept)] 0.0 1.0 3251
## Sigma[SPECIES_COMMON_NAME:covid,covid] 0.1 1.0 2139
## mean_PPD 0.0 1.0 4015
## log-posterior 0.2 1.0 893
##
## For each parameter, mcse is Monte Carlo standard error, n_eff is a crude measure of effective sample size, and Rhat is the potential scale reduction factor on split chains (at convergence Rhat=1).
This summary output (sorry pretty ugly/volumous printout…) suggests that on average across species (log) landings were no different during the COVID lockdown (see coefficient for “covid” above: 0.2 [-2.3 to 2.7 95% CIs] which translates into a point estimate of a 22% increase [(exp(0.2)-1) x 100]) than would otherwise have been expected based on history of landings by gear type over the past decade. So I would interpret this as a lack of evidence for a COVID lockdown effect on groundfish landings in the Pacific Region.
We can also look at the species specific covid coefficients (random effects on slope) to see which species (if any) exhibited evidence of reductions in landings coincident with the COVID lockdown which may be maske by the overall distribution of responses. These species specific coefficients show no evidence for a COVID effect on individual species.
If we want a t-statistic associated with the COVID “effect” then we can also fit the model in a Maximum Likelihood framework using lmer. Looks like there is a singularity issue which means one or more of the varainces are estimated to be near/at zero, but covid coefficient is similar (but slightly smaller) to Bayesian model above so we can probably ignore the singularity warning. Like above there is no evidence for a COVID lockdown effect and the model based estimte of percent change in log landings is slighty smaller +13%.
covid_model <- lmer(log_land~0+gear+covid+(1|year)+(covid|SPECIES_COMMON_NAME), data = covid_period)
## boundary (singular) fit: see ?isSingular
summary(covid_model)
## Linear mixed model fit by REML ['lmerMod']
## Formula:
## log_land ~ 0 + gear + covid + (1 | year) + (covid | SPECIES_COMMON_NAME)
## Data: covid_period
##
## REML criterion at convergence: 752.5
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.4196 -0.7629 0.1638 0.6934 1.9580
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## year (Intercept) 0.13998 0.3741
## SPECIES_COMMON_NAME (Intercept) 1.28190 1.1322
## covid 0.04432 0.2105 -1.00
## Residual 10.35079 3.2173
## Number of obs: 146, groups: year, 10; SPECIES_COMMON_NAME, 10
##
## Fixed effects:
## Estimate Std. Error t value
## gearBOTTOM TRAWL 10.4910 0.6392 16.414
## gearHOOK AND LINE 6.8688 0.7043 9.752
## gearMIDWATER TRAWL 9.5041 0.6470 14.689
## gearTRAP 8.4829 1.3720 6.183
## gearUNSPECIFIED 4.8281 0.9209 5.243
## covid 0.1203 0.9989 0.120
##
## Correlation of Fixed Effects:
## gBOTTT gHOOAL gMIDWT grTRAP gUNSPE
## gHOOKANDLIN 0.377
## gMIDWATERTR 0.369 0.351
## gearTRAP 0.162 0.189 0.129
## gUNSPECIFIE 0.266 0.225 0.256 0.130
## covid -0.175 -0.256 -0.279 -0.026 -0.037
## convergence code: 0
## boundary (singular) fit: see ?isSingular